package com.jss.jssmybatisplus.entity;

import com.alibaba.fastjson.annotation.JSONField;
import com.alibaba.fastjson.serializer.SerializerFeature;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;

import java.io.Serializable;
import java.util.Date;

import com.jss.jssmybatisplus.enums.RegisterChannelEnum;
import lombok.Data;

/**
 * 顾客信息主表
 * 
 * @author jss
 * @email 532935603@qq.com
 * @date 2022-08-22 14:29:54
 */
@Data
@TableName("user")
public class UserEntity implements Serializable {
	private static final long serialVersionUID = 1L;

	/**
	 * 主键ID
	 */
	@TableId(type = IdType.AUTO)
	private Long id;
	/**
	 * name
	 */
	@TableField(value = "name")
	private String name;
	/**
	 * 账号，如果没有绑定的时候系统随机生成
	 */
	private String account;
	/**
	 * 密码，如果没有绑定的时候系统随机生成
	 */
	private String password;
	/**
	 * 手机号
	 */
	private String mobile;
	/**
	 * 邮箱
	 */
	private String mail;
	/**
	 * 公司code
	 */
	private String companyCode;
	/**
	 * 部门编码
	 */
	private String departmentCode;
	/**
	 * 角色编码
	 */
	private String roleCode;
	/**
	 * 最近登录时间
	 */
	private Date lastLoginTime;
	/**
	 * 会员注册渠道类型1:自有渠道，2:微信，3:支付宝
	 */
	@TableField(value = "registerChannel")
	@JSONField(serialzeFeatures= SerializerFeature.WriteEnumUsingToString)
	private RegisterChannelEnum registerChannel;
	/**
	 * 注册时间
	 */
	private Date registerTime;
	/**
	 * 状态,TRUE=1 禁用 FALSE =0 启用
	 */
	private Integer disabledFlag;
	/**
	 * 会员id,crm 回传
	 */
	private String memberId;
	/**
	 * 是否绑定: 0-未绑定,1-已绑定
	 */
	private Integer bindFlag;
	/**
	 * 绑定时间
	 */
	private Date bindTime;
	/**
	 * 上层介绍人id
	 */
	private Long superiorId;
	/**
	 * 注册条款意向编码
	 */
	private String purposeCode;
	/**
	 * 优先级顺序
	 */
	private Integer sortId;
	/**
	 * 乐观锁版本
	 */
	@TableField(value = "version",update = "%s+1")
	private Integer version;
	/**
	 * 是否被删除: 0-未删除,1-删除   逻辑删除
	 */
	@TableLogic
	private Integer deleted;
	/**
	 * 合作方id
	 */
	private Long partnerId;
	/**
	 * 创建时间
	 */
	private Date createTime;
	/**
	 * 创建uid
	 */
	private String createUserId;
	/**
	 * 更新时间
	 */
	private Date updateTime;
	/**
	 * 更新uid
	 */
	private String updateUserId;
	/**
	 * 创建用户名
	 */
	private String createUserName;
	/**
	 * 更新用户名
	 */
	private String updateUserName;

}
